package main

import (
	"fmt"
	"github.com/henrylee2cn/goutil"
	"io/ioutil"
	"os"
	"strings"
	"studygo/other/picutils"
)

func main() {
	var fileName string = "D:/soft/GOPATH/src/studygo/other/downnv2/gallery/34427_40/039.jpg"
	exists := goutil.FileExists("D:/tmp/psnv/gallery/nvshen/34567_60/002.jpg")
	fmt.Println(exists)
	file, _ := ioutil.ReadFile("D:/tmp/psnv/gallery/nvshen/34567_60/002.jpg")
	fmt.Println(len(file) / 1024)
	size := picutils.GetFileSize(fileName)
	fmt.Println(size)

	GetAllFiles("D:\\soft\\GOPATH\\src\\studygo\\other\\downnv2\\gallery")

}

//获取指定目录下的所有文件和目录
func GetFilesAndDirs(dirPth string) (files []string, dirs []string, err error) {
	dir, err := ioutil.ReadDir(dirPth)
	if err != nil {
		return nil, nil, err
	}
	PthSep := string(os.PathSeparator)
	//suffix = strings.ToUpper(suffix) //忽略后缀匹配的大小写
	for _, fi := range dir {
		if fi.IsDir() { // 目录, 递归遍历
			dirs = append(dirs, dirPth+PthSep+fi.Name())
			GetFilesAndDirs(dirPth + PthSep + fi.Name())
		} else {
			// 过滤指定格式
			ok := strings.HasSuffix(fi.Name(), ".go")
			if ok {
				files = append(files, dirPth+PthSep+fi.Name())
			}
		}
	}
	return files, dirs, nil
}

//获取指定目录下的所有文件,包含子目录下的文件
func GetAllFiles(dirPth string) (files []string, err error) {
	var dirs []string
	dir, err := ioutil.ReadDir(dirPth)
	if err != nil {
		return nil, err
	}
	PthSep := string(os.PathSeparator)
	for _, fi := range dir {
		if fi.IsDir() { // 目录, 递归遍历
			dirs = append(dirs, dirPth+PthSep+fi.Name())
			GetAllFiles(dirPth + PthSep + fi.Name())
		} else {
			// 过滤指定格式
			//ok := strings.HasSuffix(fi.Name(), ".go")
			files = append(files, dirPth+PthSep+fi.Name())
			if picutils.GetFileSize(dirPth+PthSep+fi.Name()) == 0 {
				fmt.Println(dirPth + PthSep + fi.Name())
				os.Remove(dirPth + PthSep + fi.Name())
			}

		}
	}
	// 读取子目录下文件
	for _, table := range dirs {
		temp, _ := GetAllFiles(table)
		for _, temp1 := range temp {
			files = append(files, temp1)
		}
	}
	return files, nil
}
